From 3790d2ab9b967c9c3dfdedb56c22bc01b07ffbc2 Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Sat, 12 Jan 2008 09:29:38 +0000 Subject: [PATCH] svm: Properly mask unsupported bits in CPUID_80000001_ECX. Signed-off-by: Keir Fraser --- xen/arch/x86/hvm/svm/svm.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c index cb4ebdd4d9..15ade3025d 100644 --- a/xen/arch/x86/hvm/svm/svm.c +++ b/xen/arch/x86/hvm/svm/svm.c @@ -1009,6 +1009,12 @@ static void svm_vmexit_do_cpuid(struct vmcb_struct *vmcb, __clear_bit(X86_FEATURE_PSE36 & 31, &edx); /* Filter all other features according to a whitelist. */ + ecx &= (bitmaskof(X86_FEATURE_LAHF_LM) | + bitmaskof(X86_FEATURE_ALTMOVCR) | + bitmaskof(X86_FEATURE_ABM) | + bitmaskof(X86_FEATURE_SSE4A) | + bitmaskof(X86_FEATURE_MISALIGNSSE) | + bitmaskof(X86_FEATURE_3DNOWPF)); edx &= (0x0183f3ff | /* features shared with 0x00000001:EDX */ bitmaskof(X86_FEATURE_NX) | bitmaskof(X86_FEATURE_LM) | -- 2.30.2